CMake unity build#1982
Conversation
b6ae425 to
c3aeb29
Compare
c3aeb29 to
2d1e488
Compare
|
I'm seeing a crash with Windows MSVC 2022 17.14.33 (latest stable currently), doing a fresh build with first using After the build, when attaching in debug mode, first there are these 2 assertions failing: First assertion failure: The second assertion failure: And shortly after it crashes with a call stack overflow, at: With the typedef CNEOBaseProjectile BaseClass; typedef CNEOBaseProjectile ThisClass; template <typename T> friend int CheckDeclareClass_Access(T*, const char* pShouldBe); static int CheckDeclareClass(const char* pShouldBe) {
InternalCheckDeclareClass(pShouldBe, "CNEOBaseProjectile", (ThisClass*)0xFFFFF, (BaseClass*)(ThisClass*)0xFFFFF); return CheckDeclareClass_Access((BaseClass*)0, "CNEOBaseProjectile");
}; |
|
Also tested on Linux Pop!_OS 24.04 LTS, with gcc 13.3.0 and cmake 2.28.3, and the Linux build did not have these problems. |
|
And just as a build-environment sanity check, I can also verify seeing this Windows crash when attaching to the GH CI generated libraries |
0cff67b to
81429d6
Compare
|
@Rainyan |
81429d6 to
0864bd5
Compare
This comment was marked as resolved.
This comment was marked as resolved.
This comment was marked as resolved.
This comment was marked as resolved.
1e59217 to
0864bd5
Compare
@Rainyan I think |
* Improve compile times, tested no ccache full compile:
* Linux debug 9800x3d: 1m13s to 23s (3.2x speedup)
* Linux release 9800x3d: 1m36s to 1m21s (1.2x speedup)
* Windows debug 9800x3d: 1m21s to 13s (6.2x speedup)
* Windows release 9800x3d: 1m24s to 18s (4.6x speedup)
* Time VS in CMake library build stage:
* Non-unity: https://github.com/NeotokyoRebuild/neo/actions/runs/27134842462
* Unity: https://github.com/NeotokyoRebuild/neo/actions/runs/27162359918
* Linux debug github runner: 12m16s to 2m5s (5.8x speedup)
* Linux release github runner: 14m3s to 5m4s (2.8x speedup)
* Windows debug github runner: 10m56s to 1m30s (7.2x speedup)
* Windows release github runner: 11m22s to 2m6s (5.3x speedup)
* From ~1.4k obj to 150-166
* Lots of files not unity build due to IInput vs vgui::IInput
ambiguity
* Some files left out cause easier to leave it out than dealing
with it
* Not doing materialsystem as it .inc relies on 1-file-per-obj
* Few files left out of unity due to issues shown up in runtime
* Windows cmd to measure:
* powershell -Command "Measure-Command {cmake --build --preset
windows-[debug/release] | Out-Default}"
* fixes NeotokyoRebuild#1981
24a01ba to
d9cf68f
Compare


Description
Toolchain
Linked Issues